// 在二维平面上计算出两个由直线构成的矩形重叠后形成的总面积。

// 每个矩形由其左下顶点和右上顶点坐标表示，如图所示。

// Rectangle Area

// 示例:

// 输入: -3, 0, 3, 4, 0, -1, 9, 2
// 输出: 45
// 说明: 假设矩形面积不会超出 int 的范围。

#include <algorithm>

using namespace std;

class Solution {
public:
    int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
        int sum1 = (C - A) * (D - B);
        int sum2 = (G - E) * (H - F);
        if (E >= C || F >= D || B >= H || A >= G) return sum1 + sum2;
        return sum1 - ((min(G, C) - max(A, E)) * (min(D, H) - max(B, F))) + sum2;
    }
};